/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package daos.classes;

import beans.Categoria;
import beans.Producto;
import daos.classes.CategoriaDAOImp;
import daos.interfaces.CategoriaDAO;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author curso
 */
public class CategoriaDAOImp extends DAOGenerico implements CategoriaDAO{

    @Override
    public int insertar(Categoria p) throws SQLException {
        PreparedStatement ps=conexion.prepareStatement("INSERT INTO categoria (nombre)VALUES(?)") ;
        ps.setString(1, p.getNombre());
        return ps.executeUpdate();
    }

    @Override
    public List<Categoria> verCategorias() throws SQLException {
        PreparedStatement ps = conexion.prepareStatement("SELECT * FROM categoria ORDER BY nombre");
        ResultSet rs =ps.executeQuery();
        List<Categoria> lista = new ArrayList<Categoria>();
        
        while(rs.next())
        {
            Categoria cate = new Categoria();
            cate.setId_categoria(rs.getInt(1));
            cate.setNombre(rs.getString(2));
            lista.add(cate);
            
        }
        
        return lista;
    }

    @Override
    public int borrar(int id) throws SQLException {
     PreparedStatement ps = conexion.prepareStatement("DELETE FROM categoria WHERE id_categoria=?");
     ps.setInt(1, id);
     
     return ps.executeUpdate();
    }

    @Override
    public int actualizar(Categoria p) throws SQLException {
        PreparedStatement ps = conexion.prepareStatement("UPDATE CATEGORIA SET nombre= ? WHERE  id_categoria = ?");
        ps.setString(1, p.getNombre());
        ps.setInt(2, p.getId_categoria());
        
        
        return ps.executeUpdate();
                
    }
    
//    @Override
//    public List<String> verCategoria( String nombre, float precio) throws SQLException{
//        String sql = "SELECT producto.nombre FROM producto,categoria "
//                + "WHERE producto.id_categoria = categoria.id_categoria and "
//                + "categoria.nombre = ? and producto.precio = ? ORDER BY producto.nombre";
//        PreparedStatement ps = conexion.prepareStatement(sql);
//        ps.setString(1, nombre);
//        ps.setFloat(2, precio);
//        List <String> lista = new ArrayList<String>();
//        ResultSet rs = ps.executeQuery();
//        while(rs.next()){
//            lista.add(rs.getString(1));
//        }
//        return lista;
//    }

    @Override
    public List<Producto> verCategoria(String nombre) throws SQLException {
        String sql = "SELECT producto.id_producto,producto.nombre,producto.precio FROM producto,categoria "
                  + "WHERE producto.id_categoria = categoria.id_categoria and "
                + " categoria.nombre = ? ORDER BY producto.nombre";
        PreparedStatement ps = conexion.prepareStatement(sql);
        ps.setString(1, nombre);
     //   ps.setInt(2, id_categoria);
        List <Producto> lista = new ArrayList<Producto>();
        ResultSet rs = ps.executeQuery();
        while(rs.next()){
            
            Producto pro = new Producto();
            pro.setId_producto(rs.getInt(1));
            pro.setNombre(rs.getString(2));
            pro.setPrecio(rs.getFloat(3));
           
            lista.add(pro);
        }
        return lista;
    }

    
}
